// LyraAbilitySimpleFailureMessage.h
// 版权声明，Epic Games 公司版权所有
// Copyright Epic Games, Inc. All Rights Reserved.

// 防止头文件重复包含的预处理指令
#pragma once

// 包含核心最小头文件
#include "CoreMinimal.h"
// 包含游戏标签容器头文件
#include "GameplayTagContainer.h"
// 包含原生游戏标签头文件
#include "NativeGameplayTags.h"

// 包含生成的头文件
#include "LyraAbilitySimpleFailureMessage.generated.h"

// 声明游戏标签 TAG_ABILITY_SIMPLE_FAILURE_MESSAGE 的外部定义
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_ABILITY_SIMPLE_FAILURE_MESSAGE);

/**
 * Lyra 能力简单失败消息结构体
 * 用于在游戏中传递能力激活失败的信息
 */
USTRUCT(BlueprintType) // USTRUCT 宏，标记为可在蓝图中使用
struct FLyraAbilitySimpleFailureMessage
{
	GENERATED_BODY() // 生成结构体所需的主体代码

public:
	// 玩家控制器指针，指向触发能力失败的玩家控制器
	UPROPERTY(BlueprintReadWrite) // UPROPERTY 宏，标记为在蓝图中可读写
	TObjectPtr<APlayerController> PlayerController = nullptr; // 玩家控制器对象指针，初始化为空

	// 失败标签容器，包含描述失败原因的游戏标签
	UPROPERTY(BlueprintReadWrite) // UPROPERTY 宏，标记为在蓝图中可读写
	FGameplayTagContainer FailureTags; // 游戏标签容器，用于存储失败标签

	// 面向用户的失败原因描述文本
	UPROPERTY(BlueprintReadWrite) // UPROPERTY 宏，标记为在蓝图中可读写
	FText UserFacingReason; // 文本对象，存储用户可见的失败原因
};